import {createRouter,createWebHistory, RouteRecordRaw} from "vue-router";

import Home from "@/views/Home/index.vue";
import Login from "@/views/Login/index.vue";
// import Dashboard from "@/views/Dashboard/index.vue";
//通过代码引入外部子路由
const modules = import.meta.glob('./modules/**/*.ts',{eager:true});
const routerModuleList:RouteRecordRaw[]=[];
Object.keys(modules).forEach((key)=>{
  const mod = modules[key].default || {}
  const modList = Array.isArray(mod)?[...mod]:[mod];
  routerModuleList.push(...modList);
})




// 2. 定义一些路由
// 每个路由都需要映射到一个组件。
// 我们后面再讨论嵌套路由。
const routes = [
    { path: '/', component: Home },
    { path: '/login', component: Login },
   
  ]

const baseRoutes = [...routes,...routerModuleList];
// 3. 创建路由实例并传递 `routes` 配置
// 你可以在这里输入更多的配置，但我们在这里
// 暂时保持简单
 const router = createRouter({
    // 4. 内部提供了 history 模式的实现。为了简单起见，我们在这里使用 hash 模式。
    history: createWebHistory(),
    routes:baseRoutes, // `routes: routes` 的缩写
  })
router.beforeEach((to,from,next)=>{
  console.log(to);
  console.log(from);
  document.title = (to?.meta?.title as string)||document.title
  if(to.path !='/login'){
    //判断是否登陆
    if(!localStorage.getItem('token')){
      next({
        path:'/login',
        query:{
          redirect:to.fullPath
        }
      })
    }
  }
  next();
})
export {routerModuleList};
export default router;